import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
import re
from imp import reload
import h5py
import deltascope as cranium
import deltascope.alignment as ut
at = ".\\data\\28hpf\\AT\\Prob"
gfap = ".\\data\\28hpf\\Gfap\\Prob-yot-zrf-ilastik"
outdir = ".\\data\\28hpf\\Output-02-14-2019-yot-ilastik"
os.mkdir(outdir)
Dat = {}
for f in os.listdir(at):
if 'h5' in f:
num = re.findall(r'\d+',f.split('.')[0])[-1]
Dat[num] = os.path.join(at,f)
Dzrf = {}
for f in os.listdir(gfap):
if 'h5' in f:
num = re.findall(r'\d+',f.split('.')[0])[-1]
Dzrf[num] = os.path.join(gfap,f)
Dbat = {}
Dbzrf = {}
klist = Dat.keys()
param = {
'gthresh':0.5,
'scale':[1,1,1],
'microns':[0.16,0.16,0.21],
'mthresh':0.5,
'radius':10,
'comp_order':[0,2,1],
'fit_dim':['x','z'],
'deg':2
}
%%time
for k in klist:
if k not in list(Dbat.keys()):
Dbat[k] = ut.preprocess(Dat[k],param)
Dbzrf[k] = ut.preprocess(Dzrf[k],param,pca=Dbat[k].pcamed,mm=Dbat[k].mm,vertex=Dbat[k].vertex)
print(k)
else:
print(k,'already processed')
def start(k):
return(ut.start(k,Dbat,[Dbzrf],im=True))
def save_both(k,dfa,dfb):
ut.save_both(k,dfa,dfb,outdir,'28hpf')
model = pd.DataFrame({'a':[],'b':[],'c':[]})
def save_model(k,mm,model):
row = pd.Series({'a':mm[0],'b':mm[1],'c':mm[2]},name=k)
model = model.append(row)
return(model)
def fit_model(axi,df,mm=None):
if mm == None:
mm = np.polyfit(df.x,df.z,2)
p = np.poly1d(mm)
xrange = np.arange(np.min(df.x),np.max(df.x))
axi.plot(xrange,p(xrange),c='m')
return(mm)
def pick_pts(x1,z1,vx,vz,x2,z2):
pts = pd.DataFrame({'x':[x1,vx,x2],'z':[z1,vz,z2]})
return(pts)
k,df,Ldf,ax = start('104')
mm = fit_model(ax[0,1],df)
model = save_model(k,mm,model)
k,df,Ldf,ax = start('115')
df1,Ldf1 = ut.zyswitch(df,Ldf)
ax = ut.make_graph([df1]+Ldf1)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('10')
df1,Ldf1,pts,ax = ut.check_pts(df,Ldf,'z')
pts.iloc[1].x = -46
pts.iloc[1].z = 30
pts.iloc[0].z = 38
ax[0,1].scatter(pts.x,pts.z,c='y')
pts
df2,Ldf2,ax = ut.revise_pts(df,Ldf,'z',pts=pts)
df3,Ldf3,mm,ax = ut.ch_vertex(df2,Ldf2)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('116')
df1,Ldf1,ax,p = ut.check_yz(df,Ldf)
mm = [-1,0]
xrange = np.arange(-10,10)
ax[0,2].plot(xrange,np.poly1d(mm)(xrange),c='g')
df2,Ldf2,ax,p = ut.check_yz(df,Ldf,mm=mm)
df3,Ldf3,mm,ax = ut.ch_vertex(df2,Ldf2)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('16')
df1,Ldf1,pts,ax = ut.check_pts(df,Ldf,'z')
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('6')
mm = fit_model(ax[0,1],df)
save_both(k,df,Ldf[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('119')
df1,Ldf1,ax,p = ut.check_yz(df,Ldf)
mm = [1.2,0]
xrange = np.arange(-5,5)
ax[0,2].plot(xrange,np.poly1d(mm)(xrange),c='y')
df2,Ldf2,ax,p = ut.check_yz(df,Ldf,mm=mm)
df3,Ldf3,mm,ax = ut.ch_vertex(df2,Ldf2)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('120')
mm = [-1/2,0]
xrange = np.arange(-5,5)
ax[0,2].plot(xrange,np.poly1d(mm)(xrange),c='y')
df1,Ldf1,ax,p = ut.check_yz(df,Ldf,mm=mm)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
pts = pick_pts(-35,15,0,-2,40,16)
ax[0,1].scatter(pts.x,pts.z,c='m',s=50)
df3,Ldf3,mm,ax = ut.ch_vertex(df1,Ldf1,pts=pts)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('14')
df1,Ldf1,pts,ax = ut.check_pts(df,Ldf,'z')
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
pts = pick_pts(-20,15,0,0,22,15)
ax[0,1].scatter(pts.x,pts.z,c='m',s=50)
df3,Ldf3,mm,ax = ut.ch_vertex(df2,Ldf2,pts=pts)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('8')
mm = [-2/5,0]
xrange = np.arange(-5,15)
ax[0,2].plot(xrange,np.poly1d(mm)(xrange),c='y')
df1,Ldf1,ax,p = ut.check_yz(df,Ldf,mm=mm)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
pts = pick_pts(-48,20,0,-2,48,20)
ax[0,1].scatter(pts.x,pts.z,c='m',s=50)
df3,Ldf3,mm,ax = ut.ch_vertex(df2,Ldf2,pts=pts)
save_both(k,df3,Ldf3[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('121')
df1,Ldf1 = ut.zyswitch(df,Ldf)
ax = ut.make_graph([df1]+Ldf1)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('12')
save_both(k,df,Ldf[0])
mm = fit_model(ax[0,1],df)
model = save_model(k,mm,model)
k,df,Ldf,ax = start('117')
df1,Ldf1 = ut.zyswitch(df,Ldf)
ax = ut.make_graph([df1]+Ldf1)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('5')
df1,Ldf1 = ut.zyswitch(df,Ldf)
ax = ut.make_graph([df1]+Ldf1)
pts = pick_pts(-35,10,-2,-6,30,10)
ax[0,1].scatter(pts.x,pts.z,c='m',s=50)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1,pts=pts)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('4')
mm = fit_model(ax[0,1],df)
save_both(k,df,Ldf[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('112')
mm = fit_model(ax[0,1],df)
save_both(k,df,Ldf[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('118')
mm = [-2/5,0]
xrange = np.arange(-5,10)
ax[0,2].plot(xrange,np.poly1d(mm)(xrange),c='y')
df1,Ldf1,ax,p = ut.check_yz(df,Ldf,mm=mm)
df2,Ldf2,mm,ax = ut.ch_vertex(df1,Ldf1)
save_both(k,df2,Ldf2[0])
model = save_model(k,mm,model)
k,df,Ldf,ax = start('2')
mm = fit_model(ax[0,1],df)
save_both(k,df,Ldf[0])
model = save_model(k,mm,model)
model
model.to_csv(os.path.join(outdir,'model.csv'))
outdir